import store from '@/store/index.js'
import config from '@/admin.config.js'
const debugOptions = config.navBar.debug

//zxl--删除云端功能
// const db = uniCloud.database()
// let hasServer = true
// db.catch(res => {
// 	hasServer = false
// })
// setTimeout(()=> {
// 	hasServer && db.on('refreshToken', function({
// 		token,
// 		tokenExpired
// 	}) {
// 		store.commit('user/SET_TOKEN', {
// 			token,
// 			tokenExpired
// 		})
// 	})

// 	hasServer && db.on('error', function({
// 		code, // 错误码详见https://uniapp.dcloud.net.cn/uniCloud/clientdb?id=returnvalue
// 		message
// 	}) {
// 		reLaunchToLogin(code)
// 	})

// }, 16)

export function request(action, params, {
	functionName = 'uni-id-cf',
	showModal = true
} = {}) {
	return new Promise((resolved, rejected) => {
		//zxl--示例登录成功,所有密码都可以登录
		if(action=='login'){
			resolved({
				token:'lsfslflksklflslfslfls',
				tokenExpired:1942276120373		//zxl--设个超大的时间戳测试,
			});
			return;
		}
		//zxl--使用自定义API
		let token = store.getters['user/token'];
		uni.request({
			url: 'http://www.baidu.com/'+action, //zxl--仅为示例，修改为你自己的真实接口地址。
			data: params,
			header: {
			   'content-type': 'application/x-www-form-urlencoded',
			   'accessToken': `${token}` //权限token 
			},
			success: (res) => {
			  resolved(res.data);
			},
			fail:(err) => {
				uni.showModal({
					content:'请求API失败'+err.errMsg
				});
				
				rejected(err)
			}
		});
	});
	
	//zxl--删除云端功能
	// return uniCloud.callFunction({
	// 	name: functionName,
	// 	data: {
	// 		action,
	// 		params
	// 	}
	// }).then(({
	// 	result
	// }) => {
	// 	if (!result) {
	// 		return Promise.resolve(result)
	// 	}
	// 	if (result.code) {
	// 		reLaunchToLogin(result.code)
	// 		// const err = new Error(result.message)
	// 		// err.code = result.code
	// 		const err = result
	// 		return Promise.reject(err)
	// 	}
	// 	const {
	// 		token,
	// 		tokenExpired
	// 	} = result
	// 	if (token && tokenExpired) {
	// 		store.commit('user/SET_TOKEN', {
	// 			token,
	// 			tokenExpired
	// 		})
	// 	}
	// 	return Promise.resolve(result)
	// }).catch(err => {
	// 	showModal && uni.showModal({
	// 		content: err.message || '请求服务失败',
	// 		showCancel: false
	// 	})
	// 	// #ifdef H5
	// 	const noDebugPages = ['/pages/login/login', '/pages/init/init']
	// 	const path = location.hash.split('#')[1]
	// 	if (debugOptions && debugOptions.enable === true && noDebugPages.indexOf(path) === -1) {
	// 		store.dispatch('error/add', {
	// 			err: err.toString(),
	// 			info: '$request("' + action + '")',
	// 			route: '',
	// 			time: new Date().toLocaleTimeString()
	// 		})
	// 	}
	// 	// #endif
	// 	return Promise.reject(err)
	// })
}

function reLaunchToLogin(code) {
	if (typeof code === 'string' && code.indexOf('TOKEN_INVALID') === 0) {
		uni.reLaunch({
			url: config.login.url
		})
	}
}

// #ifndef VUE3
export function initRequest(Vue) {
	Vue.prototype.$request = request
}
// #endif

// #ifdef VUE3
export function initRequest(app) {
	app.config.globalProperties.$request = request
}
// #endif
